package com.ruanyun.modular.admin.service;

import cn.stylefeng.roses.core.reqres.response.ResponseData;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruanyun.base.pojo.page.LayuiPageInfo;
import com.ruanyun.modular.admin.entity.TPollutantsFactor;
import com.ruanyun.modular.admin.model.params.TPollutantsFactorParam;
import com.ruanyun.modular.admin.model.result.TPollutantsFactorResult;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruanyun.modular.admin.model.result.TProductinfoResult;
import org.apache.poi.ss.formula.functions.T;

import java.util.List;

/**
 * <p>
 * 污染物信息表 服务类
 * </p>
 *
 * @author zs
 * @since 2021-05-12
 */
public interface TPollutantsFactorService extends IService<TPollutantsFactor> {

    /**
     * 新增
     *
     * @author zs
     * @Date 2021-05-12
     */
    ResponseData add(TPollutantsFactorParam param);

    /**
     * 删除
     *
     * @author zs
     * @Date 2021-05-12
     */
    void delete(TPollutantsFactorParam param);

    /**
    * 删除
    * @param id
    * @return
    */
    ResponseData updateDelFlagById(Long id);

    /**
     * 更新
     *
     * @author zs
     * @Date 2021-05-12
     */
    ResponseData update(TPollutantsFactorParam param);

    /**
     * 查询单条数据，Specification模式
     *
     * @author zs
     * @Date 2021-05-12
     */
    TPollutantsFactorResult findBySpec(TPollutantsFactorParam param);

    /**
     * 查询列表，Specification模式
     *
     * @author zs
     * @Date 2021-05-12
     */
    List<TPollutantsFactorResult> findListBySpec(TPollutantsFactorParam param);

    /**
     * 查询分页数据，Specification模式
     *
     * @author zs
     * @Date 2021-05-12
     */
     LayuiPageInfo findPageBySpec(Integer monitoringId,Integer isOrganization);

     /**
     * 启用
     *
     * @param id
     * @return
     */
     ResponseData enableById(Long id);

     /**
     * 禁用
     *
     * @param id
     * @return
     */
     ResponseData disableById(Long id);

    /*位置列表*/
    LayuiPageInfo findPageBySpecs(Integer monitoringId,Integer isOrganization,Integer isInside);


    LayuiPageInfo pollutantsList(Integer monitoringId,Integer isOrganization,Integer isInside,Integer pid);

    LayuiPageInfo pollutantsLists(Integer monitoringId,Integer isOrganization,Integer isInside,Integer windType);


    /*获取排放口信息*/
    Page<TPollutantsFactorResult> getOrganizedInfo(Integer monitoringId, Integer isOrganization);


    /*获取排放口污染物信息*/
    Page<TPollutantsFactorResult> getOrganizedPollutantsInfo(Integer monitoringId, Integer isOrganization,Integer orificeId);


    /*获取位置信息*/
    Page<TPollutantsFactorResult> getUnorganizedLocationInfo(Integer monitoringId, Integer isOrganization);


    /*获取厂内污染物信息*/
    Page<TPollutantsFactorResult> getInsidePollutantsInfo(Integer monitoringId, Integer isOrganization,Integer id);


    /*获取厂界污染物信息*/
    Page<TPollutantsFactorResult> getUnInsidePollutantsInfo(Integer monitoringId, Integer isOrganization,Integer windType);


    /*有组织排放监测信息*/
   List<TPollutantsFactorResult> getOrganizedList(Integer companyId);

   /*厂界无组织排放监测情况*/
    List<TPollutantsFactorResult> getUnOrganizedList(Integer companyId,Integer windType);

    /*厂内无组织监测情况*/
    List<TPollutantsFactorResult>  getInsidePositionList(Integer companyId);










}
